AmPlanForm = Ext.extend(Ext.Window, {
	// 构造函数
	constructor : function(_cfg) {
		Ext.applyIf(this, _cfg);
		this.initUIComponents();
		AmPlanForm.superclass.constructor.call(this, {
			id : 'AmPlanFormWin',
			layout : 'fit',
			items : [ this.formPanel ],
			modal : true,
			height : 510,
			width : 700,
			labelWidth : 60,
			maximizable : true,
			title : '计划详情',
			buttonAlign : 'center',
			buttons : this.buttons
		});
	},// end of the constructor
	// 初始化组件
	initUIComponents : function() {
		var removed = new Array();
		var chooseDistrictId = null;
		var chooseSiteStore = new Ext.data.ArrayStore({
			id : 'chooseSiteStore',
			fields : [ 'id', 'name' ],
			data : []
		});

		var selectedSiteStore = new Ext.data.ArrayStore({
			id : 'selectedSiteStore',
			fields : [ 'id', 'name' ],
			listeners : {
				add : function(o,rs,i){
					for(var i = 0 ;i<rs.length; i++){
						var am = rs[i].get('name');
						for(var j=0;j<removed.length;j++){
							if(removed[j]==am){
								delete removed[j];
							}
						}
					}
				},
				remove : function(o,r,i){
					var am = r.get('name');
					removed[removed.length]=am;
				}
			}
		});
		var jsArr = [ __ctxPath + '/ext3/ux/MultiSelect.js', __ctxPath + '/ext3/ux/ItemSelector01.js' ];
		$ImportSimpleJs(jsArr, function() {
			var siteSelector = {
				xtype : 'itemselector',
				id : 'SiteSelect',
				name : 'amIds',
				imagePath : __ctxPath + '/ext3/ux/images/',
				multiselects : [ {
					id : 'chooseSite',
					width : 247,
					height : 260,
					// SimpleStore 有可能 在Ext 3.0 以后的版本 换成
					// ArrayStore,更新版本时请注意
					store : chooseSiteStore,
					displayField : 'name',
					valueField : 'id'
				}, {
					id : 'selectedSite',
					width : 247,
					height : 260,
					store : selectedSiteStore,
					tbar : [ {
						text : '清除所选',
						handler : function() {
							Ext.getCmp('SiteSelect').reset();
						}
					} ],
					displayField : 'name',
					valueField : 'id'
				} ]
			};
			Ext.getCmp('sitePanel').add(siteSelector);
			Ext.getCmp('sitePanel').doLayout(true);
		});

		if (!!this.planId) {
			Ext.Ajax.request({
				url : __ctxPath + '/pdaweb/listAmPlan.do?Q_planId_L_EQ=' + this.planId,
				success : function(response, option) {
					var json = eval("(" + response.responseText + ")");
					Ext.getCmp('AmPlan.planId').setValue(json.result[0].planId);
					Ext.getCmp('AmPlan.planName').setValue(json.result[0].planName);
					Ext.getCmp('AmPlan.accountDay').setValue(json.result[0].accountDay);
					Ext.getCmp('AmPlan.executor').setValue(json.result[0].executor);
				}
			});
			Ext.Ajax.request({
				url : __ctxPath + '/pdaweb/getByPlanIdAmPlan.do?planId=' + this.planId,
				success : function(response, option) {
					var json = eval("(" + response.responseText + ")");
					selectedSiteStore.loadData(json);
				}
			});

		}
		var adStore = new Array();
		for ( var i = 0; i < 28; i++)
			adStore[i] = i + 1;

		// 初始化表单
		this.formPanel = new Ext.FormPanel({
			layout : 'form',
			id : 'AmPlanViewForm',
			labelAlign : 'middle',
			style : 'padding:0 20px 0 20px',
			scroll : 'auto',
			frame : true,
			border : true,
			defaultType : 'textfield',
			items : [ {
				xtype : 'fieldset',
				title : '1.填写计划内容',
				items : [ {
					xtype : 'container',
					layout : 'column',
					style : 'padding:5px 0 5px 40px;',
					items : [ {
						xtype : 'hidden',
						name : 'amPlan.planId',
						id : 'AmPlan.planId',
						style : 'margin-top:2px;',
						value : this.planId
					}, {
						xtype : 'label',
						style : 'padding:3px 2px;',
						text : '计划名称:'
					}, {
						xtype : 'textfield',
						name : 'amPlan.planName',
						id : 'AmPlan.planName',
						style : 'margin-top:2px;',
						width : 195,
						allowBlank : false
					}, {
						xtype : 'label',
						style : 'padding:3px 2px 0 24px;',
						text : '月结日:'
					}, {
						name : 'amPlan.accountDay',
						id : 'AmPlan.accountDay',
						xtype : 'combo',
						mode : 'local',
						editable : false,
						triggerAction : 'all',
						store : adStore,
						allowBlank : false,
						width : 40
					} ]
				} ]
			}, {
				xtype : 'fieldset',
				title : '2.选择抄表地点',
				items : [ {
					xtype : 'container',
					layout : 'column',
					style : 'padding:5px 0 5px 40px;',
					items : [ {
						xtype : 'label',
						style : 'padding:3px 2px',
						text : '区:'
					}, {
						xtype : 'combo',
						id : 'districtID',
						width : 100,
						valueField : 'districtId',
						displayField : 'districtName',
						mode : 'local',
						editable : false,
						triggerAction : 'all',
						store : new Ext.data.SimpleStore({
							url : __ctxPath + '/pdaweb/showDistrictAmPlan.do',
							autoLoad : true,
							fields : [ 'districtId', 'districtName' ]
						}),
						listeners : {
							select : function(cbo, record, index) {
								Ext.getCmp('buildingID').setValue('');
								chooseDistrictId = Ext.getCmp('districtID').getValue();
								Ext.Ajax.request({
									url : __ctxPath + '/pdaweb/showBuildingAmPlan.do?districtId=' + chooseDistrictId,
									success : function(response, option) {
										Ext.getCmp('buildingID').store.loadData(eval("(" + response.responseText + ")"));
									}
								});

							}
						}
					}, {
						xtype : 'label',
						style : 'padding:3px 2px 0 8px;',
						text : '栋:'
					}, {
						xtype : 'combo',
						id : 'buildingID',
						width : 100,
						valueField : 'buildingId',
						displayField : 'buildingtName',
						mode : 'local',
						editable : false,
						triggerAction : 'all',
						store : new Ext.data.SimpleStore({
							url : __ctxPath + '/pdaweb/showBuildingAmPlan.do?districtId=',
							autoLoad : true,
							fields : [ 'buildingId', 'buildingtName' ]
						}),
						listeners : {
							select : function(cbo, record, index) {
								var districtId = Ext.getCmp('districtID').getValue();
								if(districtId!=''){
									Ext.Ajax.request({
										url : __ctxPath + '/pdaweb/getAmIdAmPlan.do',
										params : {
											districtId : districtId,
											buildingId : this.getValue()
										},
										success : function(response, option) {
											chooseSiteStore.loadData(eval("(" + response.responseText + ")"));
										}
									});
								}
							}
						}
					} ]
				}, {
					xtype : 'panel',
					id : 'sitePanel',
					width : '98%',
					height : 400,
					style : 'padding-left:40px',
					items : []
				} ]
			} ]
		}); // end form

		this.buttons = [ {
			text : '保存',
			iconCls : 'btn-save',
			scope : this,
			handler : function() {
				
				if (!this.planId && selectedSiteStore.getCount() == 0) {
					Ext.Msg.alert('操作提示', '该计划还没有选择任何电表！');
				} else {
					var fp = Ext.getCmp('AmPlanViewForm');
					if (fp.getForm().isValid()) {
						var removedStr='';
	                    for(var i = 0 ;i < removed.length; i++)
                        	removedStr += removed[i]+',';
						fp.getForm().submit({
							url : __ctxPath + '/pdaweb/saveAmPlan.do',
							WaitMsg : '正在提交数据...',
							params : {
	                            removed:removedStr
	                        },
							success : function(fp, action) {
								Ext.ux.Toast.msg('操作信息', '执行成功！');
								Ext.getCmp("AmPlanFormWin").close();
								Ext.getCmp('AmPlanGrid').getStore().reload();
							},
							failure : function(fp, action) {
								Ext.Msg.alert('操作信息', '执行失败！');
							}
						});
					}
				}
			}
		}, {
			text : '取消',
			iconCls : 'btn-cancel',
			scope : this,
			handler : function() {
				Ext.getCmp("AmPlanFormWin").close();
			}
		} ]
	}

});
